package com.ruoyi.banner.service.impl;

import java.util.List;

import javax.annotation.Resource;

import com.common.util.StringUtil;
import org.springframework.stereotype.Service;
import com.ruoyi.banner.mapper.BannerMapper;
import com.ruoyi.banner.domain.Banner;
import com.ruoyi.banner.service.IBannerService;
import com.ruoyi.oss.config.OssConfig;
import com.basic.service.impl.BaseServiceImpl;

/**
 * 首页轮播图Service业务层处理
 *
 * @author 王强
 * @date 2024-01-19
 */
@Service
public class BannerServiceImpl extends BaseServiceImpl<Long, Banner> implements IBannerService
{
	OssConfig config;


	@Resource
    public void setConfig(OssConfig config) {
		this.config = config;
	}
	public BannerServiceImpl(BannerMapper baseMapper) {
		super(baseMapper);
		// TODO Auto-generated constructor stub
	}
    /**
     * 查询首页轮播图
     *
     * @param id 首页轮播图主键
     * @return 首页轮播图
     */
    @Override
    public Banner selectById(Integer id)
    {
        return baseMapper.selectById(id);
    }

    /**
     * 查询首页轮播图列表
     *
     * @param banner 首页轮播图
     * @return 首页轮播图
     */
    @Override
    public List<Banner> selectList(Banner banner)
    {
        List<Banner> selectList = baseMapper.selectList(banner);

        if (0 == selectList.size()) {
        	return selectList;
        }

        String prefix =  "https://".concat(config.getURL());

        for (Banner item : selectList) {

        	item.setPicUrl(prefix.concat(item.getPicUrl()));
		}

		return selectList;
    }

    /**
     * 新增首页轮播图
     *
     * @param banner 首页轮播图
     * @return 结果
     */
    @Override
    public int insert(Banner banner)
    {
    	parseImage(banner);

    	insertProperties(banner);
        return baseMapper.insert(banner);
    }
	private void parseImage(Banner banner) {
		String prefix =  (config.getURL());
    	String picUrl = banner.getPicUrl();
        if (StringUtil.isNotBlank(picUrl)) {
            picUrl = picUrl.replaceAll("https://", "").replaceAll("http://", "").replaceAll(prefix, "");
            banner.setPicUrl(picUrl);
        }
	}

    /**
     * 修改首页轮播图
     *
     * @param banner 首页轮播图
     * @return 结果
     */
    @Override
    public int update(Banner banner)
    {

    	updateProperties(banner);
    	parseImage(banner);

        return baseMapper.update(banner);
    }

    /**
     * 批量删除首页轮播图
     *
     * @param ids 需要删除的首页轮播图主键
     * @return 结果
     */
    @Override
    public int deleteByIds(Integer[] ids)
    {
        return baseMapper.deleteByIds(ids);
    }

    /**
     * 删除首页轮播图信息
     *
     * @param id 首页轮播图主键
     * @return 结果
     */
    @Override
    public int deleteById(Integer id)
    {
        return baseMapper.deleteById(id);
    }
}
